CNN Structure

합성 신경망(Convolutional Neural Network, CNN)
합성 신경망(CNN)은 뇌의 시각 피질이 물체를 인식할 때, 동작하는 방식에서 영감을 얻은 모델이다.
(첫 번채 층에서는 주로 모서리와 직선을 감지, 뒤쪽 층은 복잡한 모양과 패턴을 추춫하는데 초점을 맞춤)

CNN은 이미지 분류 작업에서 탁월한 성능을 내는 특별한 피드포워드 신경망으로 컴퓨터 비전을 위한
머신 러닝 분야, 인공 지능 분야에 대한 기여를 인정받아 얀 르쿤(신경망 개발)은 튜링상을 받았다.
특성 계층 학습
머신 러닝에서 핵신 특징을 추출하는 것은 성능에서 아주 중요하다.
전통적인 머신 러닝 모델은 도메인 전문가가 만든 특성에 의존하거나, 컴퓨터를 사용한 특성 추출 기법을 바탕으로 특성을 추출하였다.

CNN과 같은 신경망은 원본 데이터에서 작업에 가장 유용한 특성을 자동으로 학습한다.
입력 층은 원본 데이터에서 저수준 특성을 추출한다. 뒤쪽의 층은 이런 특성을 이용해서 연속적인 타깃 값이나 클래스 레이블을 예측한다.

각 층별로 저수준 특성을 연결하여 고수준 특성을 만든다.(특성 계층을 구성)
ex) 앞층에서 모서리나 동그라미 같은 저수준 특성이 추출. 저수준 특성들이 연결되어 고수준 특성을 형성
      이런 고수준 특성은 건물, 자동차, 강아지 등 더 복잡한 모양을 형성한다.
특성맵(feature map)
특성 맵의 각 원소는 입력 이미지의 국부적인 픽셀 패치(patch)로부터 유도된다.
국부적인 패치를 국부 수용장(local receptive field)라고 한다.
CNN, Convolutional Neural Network 요약
이후 특성 맵이 활성함수의 입력 값이 된다.
CNN 동작 아이디어
1. 희소 연결
특성 맵에 있는 하나의 원소는 작은 픽셀 패치 하나에만 연결된다.(퍼셉트론 처럼 모든 입력 이미지에 연결되지 않음)
2. 파라미터 공유
동일한 가중치가 입력 이미지의 모든 패치에 사용
일반적인 MLP를 합성곱 층으로 바꾸면, 네트워크의 가중치(파라미터)의 개수가 극적으로 감소하고
중요 특징을 잡아내는 능력이 향상된다.(일반적으로 멀리 떨어진 픽셀이 연관성이 낮음)

CNN은 여러개의 합성곱(conv)층과 풀링(Pooling, P)라고 하는 서브샘플링(subsampling)층으로 이루어져 있다.
마지막으로 완전 연결(FC) 층이 따라온다.

풀링층(서브샘플링층)은 학습되는 파라미터가 없다.(가중치와 절편 유닛 x)
합성곱과 완전연결층만 훈련도중 최적화되는 가중치와 절편을 가진다.